

import 'package:flutter/cupertino.dart';

abstract class BaseWidget extends StatefulWidget {

  const BaseWidget({super.key});


  @override
  State<StatefulWidget> createState() {
    return getState();
  }

  BaseWidgetState getState();

}


abstract class BaseWidgetState<T extends BaseWidget> extends State<T> {
  /// 页面 TAG
  String TAG = "[BaseWidgetState_";


  @override
  void initState() {
    TAG = "$TAG$runtimeType]";
    super.initState();

  }


  @override
  void dispose() {
    super.dispose();
  }

  /// 根据屏幕宽度计算像素点
  double xx(double x) {
    return sw() / 1280.0 * x;
  }

  /// 根据屏幕高度计算像素点
  double yy(double y) {
    return sh() / 720 * y;
  }

  /// 屏幕宽度
  double sw() {
    return MediaQuery.of(context).size.width;
  }

  /// 屏幕高度
  double sh() {
    return MediaQuery.of(context).size.height;
  }

  double get16Sw(){
    // 获取屏幕高度
    double screenHeight = sh();
    // 计算出16:10的宽度
    double screenWidth = screenHeight / 10 * 16;
    // 如果计算出的宽度大于屏幕宽度，则根据屏幕宽度计算高度
    if (screenWidth > sw()) {
      screenWidth = sw();
      screenHeight = screenWidth / 16 * 10;
    }
    return screenWidth;
  }

  double get16Sh(){
    // 获取屏幕高度
    double screenHeight = sh();
    // 计算出16:10的宽度
    double screenWidth = screenHeight / 10 * 16;
    // 如果计算出的宽度大于屏幕宽度，则根据屏幕宽度计算高度
    if (screenWidth > sw()) {
      screenWidth = sw();
      screenHeight = screenWidth / 16 * 10;
    }
    return screenHeight;
  }

}
